import Vue from 'vue';
import App from './App.vue';
import router from './router';
import ElementUI from 'element-ui';
import VueI18n from 'vue-i18n';


import configts from '/config.js';

import {
    messages
} from './components/common/i18n';
import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
// import './assets/css/theme-green/index.css'; // 浅绿色主题
import './assets/css/icon.css';
import './components/common/directives';
import 'babel-polyfill';
import {
    Loading
} from 'element-ui';
// 配置MintUI

Vue.config.productionTip = false;
Vue.use(VueI18n);
Vue.use(ElementUI, {
    size: 'small'
});
const i18n = new VueI18n({
    locale: 'zh',
    messages
});

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
    var kCount = Object.keys(to.meta).length > 0;
    console.log(kCount);
    document.title = `${kCount?to.meta.title:"后台管理"} | vue-manage-system`;
    //document.title = `皮带秤选型`;
    const role = localStorage.getItem('ms_username');
    if (!role && to.path !== '/login') {
        if (to.path == '/login') {
            next();
        } else {
            if (to.name == "/login") {
                next('/login');
            } else {
                next('/login');
            }
        }

    } else if (to.meta.permission) {
        // 如果是管理员权限则可进入，这里只是简单的模拟管理员权限而已
        role === 'admin' ? next() : next('/403');
    } else {
        // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
        if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
            Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
                confirmButtonText: '确定'
            });
        } else {
            next();
        }
    }
});

// 配置axios
import Axios from 'axios'
// 配置公共URL
//Axios.defaults.baseURL = 'http://114.215.145.203:8088/api/v1/';
Axios.defaults.baseURL = configts.apiUrl+'api/v1/';



let loadingInstance;
// 配置请求拦截器，显示loading图标
Axios.interceptors.request.use(function(config) {
    loadingInstance = Loading.service({
        lock: true,
        text: '玩命加载中......',
        background: 'rgba(0,0,0,0.5)'
    });
     
       
        return config;  
}




    
);
// 配置响应拦截器，关闭loading图标
Axios.interceptors.response.use(function(response) {
    //this.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
    loadingInstance.close();
    // });
    return response;
});

Axios.interceptors.request.use(config => {  
    if (config.push === '/') { 
       } else { 
                 if (localStorage.getItem('tokenStr')) { 
                         //在请求头加入token，名字要和后端接收请求头的token名字一样    
                         config.headers.Authorization=localStorage.getItem('tokenStr');        
                  }   
          }  
           return config;  
     },  
     error => { 
        return Promise.reject(error);
     });
  
Vue.prototype.$zybhttp = Axios

new Vue({
    router,
    i18n,
    render: h => h(App)
}).$mount('#app');